// 引入 axios 库
import axios from 'axios';

// 创建 axios 实例
const instance = axios.create({
  baseURL: '', // 设置默认的 API 地址
//   baseURL: 'https://siyu.seeking2020.cn', // 设置默认的 API 地址
  timeout: 1000, // 请求超时时间
});

// 请求拦截器
instance.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么，例如设置 token
    const token = localStorage.getItem('token');
    config.headers['Authorization'] = `Bearer ${token}`;
    return config;
  },
  error => {
    // 处理请求错误
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    return response.data;
  },
  error => {
    // 任何 HTTP 错误状态码都会触发此函数
    if (error.response) {
      // 客户端收到无效的响应
      switch (error.response.status) {
        case 401:
          // 处理 401 错误，例如未授权
          break;
        case 403:
          // 处理 403 错误，例如禁止访问
          break;
        // ...其他状态码处理
        default:
          // 处理其他响应错误
          break;
      }
    }
    return Promise.reject(error);
  }
);

// 封装 get 请求
export function get(url, params) {
  return instance.get(url, {
    params: params,
  });
}

// 封装 post 请求
export function post(url, data) {
  return instance.post(url, data);
}

// 可以继续封装其他方法，如 put, delete